/*************************************************************************
	> File Name: 001.结构体对齐方式.c
	> Author: Maureen 
	> Mail: Maureen@qq.com 
	> Created Time: 四  8/26 18:01:01 2021
 ************************************************************************/

#include <stdio.h>

//以4字节为对齐标准，每个字段开辟的空间是4字节的倍数
//如果开辟的未使用的空间够下一个字段使用，则下一个字段不用再开辟额外的空间
struct person {
	char name[20];  //姓名
	int age;  		//年龄
	char gender;	//性别
	float height;	//身高
};


//强行修改对齐标准，此处以 1 字节为对齐标准
//如果没有该宏，结构体的大小为 8 字节, 而且会修改其后所有的结构体的对齐方式
#pragma pack(1)
struct test {
    char c;
    int a;
};


int main() {
    struct test t;
    printf("%lu\n", sizeof(t)); //5

    struct person stu; //表示声明了一个struct person类型的变量stu
    printf("sizeof(stu) = %lu\n", sizeof(stu)); //32 
    return 0;
}
